package edu.pucsp.predatorprey.simulador.java.terreno.api;

import java.util.Map;

import edu.pucsp.predatorprey.simulador.java.criatura.AbstractCriatura;
import edu.pucsp.predatorprey.simulador.java.posicao.impl.Direcao;
import edu.pucsp.predatorprey.simulador.java.posicao.impl.Posicao;
import edu.pucsp.predatorprey.simulador.java.terreno.impl.ListaPosicao;

/**
 * @author José Almada
 */
public interface Terreno {

	void moverCriatura(AbstractCriatura criatura, Direcao direcao);

	ListaPosicao obterPosicoesRelativasPresas(AbstractCriatura criaturaReferencia);

	ListaPosicao obterPosicoesRelativasPredadores(AbstractCriatura criaturaReferencia);

	void adicionarObservador(ObservadorTerreno observadorTerreno);

	Map<AbstractCriatura, Posicao> obterPosicaoCriaturas();

}
